Imports System.Data
Imports CrystalDecisions.CrystalReports.Engine

Partial Class Sol_InfraEstructuraReporte
  Inherits System.Web.UI.Page

  Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load

    Try
      Dim reporte As New ReportDocument()
      ' Detalle del documento
      reporte.Load(Server.MapPath("~\Documentos\Sol_InfraEstructura\Reporte\rptSol_InfraEstructura.rpt"))

      'Datos encabezado
      Dim docSol_InfraEstructura As New DataAccesSol_InfraEstructura()
      Dim Sol_InfraEstructuraDetalle As New DataSet("DetalleDocumento")
      Sol_InfraEstructuraDetalle = docSol_InfraEstructura.Sol_InfraEstructura_DetalleXML(CInt(Request.QueryString("nidDocumento")))
	  Sol_InfraEstructuraDetalle.Tables(0).TableName = "Encabezado"
	  Sol_InfraEstructuraDetalle.Tables(1).TableName = "DetalleDocumento"
	  Sol_InfraEstructuraDetalle.Tables(2).TableName = "Anexos"
	  Sol_InfraEstructuraDetalle.Tables(3).TableName = "Incidencias"
	  
	  Dim tEncabezado As DataTable=Sol_InfraEstructuraDetalle.Tables(0)
	  Dim tDetalle As DataTable=Sol_InfraEstructuraDetalle.Tables(1)
	  Dim tAnexos As DataTable=Sol_InfraEstructuraDetalle.Tables(2)
	  Dim tIncidencias As DataTable=Sol_InfraEstructuraDetalle.Tables(3)
	  
      reporte.SetParameterValue("pCodigo", tEncabezado.Rows(0)("CODIGO"))
      reporte.SetParameterValue("pFechaSolicitud", CDate(tEncabezado.Rows(0)("FECHACREACION")).ToString("dd/MM/yyyy HH:mm:ss"))
      reporte.SetParameterValue("pEmisor", tEncabezado.Rows(0)("NOMBRE"))

      'Detalle del documento
	  reporte.SetParameterValue("pnid", tDetalle.Rows(0)("nid").ToString)
      reporte.SetParameterValue("pnidDocumento", tDetalle.Rows(0)("nidDocumento").ToString)
      reporte.SetParameterValue("pvid", tDetalle.Rows(0)("vid").ToString)
      reporte.SetParameterValue("ppDia", tDetalle.Rows(0)("pDia").ToString)
      reporte.SetParameterValue("ppMes", tDetalle.Rows(0)("pMes").ToString)
      reporte.SetParameterValue("ppAnio", tDetalle.Rows(0)("pAnio").ToString)
      reporte.SetParameterValue("pnomNaviera", tDetalle.Rows(0)("nomNaviera").ToString)
      reporte.SetParameterValue("pdomicilioNaviera", tDetalle.Rows(0)("domicilioNaviera").ToString)
      reporte.SetParameterValue("presponsableNaviera", tDetalle.Rows(0)("responsableNaviera").ToString)
      reporte.SetParameterValue("prepresentante", tDetalle.Rows(0)("representante").ToString)
      reporte.SetParameterValue("ppersonalidad", tDetalle.Rows(0)("personalidad").ToString)
      reporte.SetParameterValue("pbuque", tDetalle.Rows(0)("buque").ToString)
      reporte.SetParameterValue("pbandera", tDetalle.Rows(0)("bandera").ToString)
      reporte.SetParameterValue("peslora", tDetalle.Rows(0)("eslora").ToString)
      reporte.SetParameterValue("pTRB", tDetalle.Rows(0)("TRB").ToString)
      reporte.SetParameterValue("pimpo", tDetalle.Rows(0)("impo").ToString)
      reporte.SetParameterValue("pexpo", tDetalle.Rows(0)("expo").ToString)
      reporte.SetParameterValue("pimpoCarga", tDetalle.Rows(0)("impoCarga").ToString)
      reporte.SetParameterValue("pexpoCarga", tDetalle.Rows(0)("expoCarga").ToString)
      reporte.SetParameterValue("ptonImpo", tDetalle.Rows(0)("tonImpo").ToString)
      reporte.SetParameterValue("ptonExpo", tDetalle.Rows(0)("tonExpo").ToString)
      reporte.SetParameterValue("punidImpo", tDetalle.Rows(0)("unidImpo").ToString)
      reporte.SetParameterValue("punidExpo", tDetalle.Rows(0)("unidExpo").ToString)
      reporte.SetParameterValue("pETA", tDetalle.Rows(0)("ETA").ToString)
      reporte.SetParameterValue("pHETA", tDetalle.Rows(0)("HETA").ToString)
      reporte.SetParameterValue("ppasajeros", tDetalle.Rows(0)("pasajeros").ToString)
      reporte.SetParameterValue("pmuelle", tDetalle.Rows(0)("muelle").ToString)
      reporte.SetParameterValue("pproductividad", tDetalle.Rows(0)("productividad").ToString)
      reporte.SetParameterValue("pestadia", tDetalle.Rows(0)("estadia").ToString)
      reporte.SetParameterValue("pETF", tDetalle.Rows(0)("ETF").ToString)
      reporte.SetParameterValue("pHETF", tDetalle.Rows(0)("HETF").ToString)
      reporte.SetParameterValue("pturistico", tDetalle.Rows(0)("turistico").ToString)
      reporte.SetParameterValue("ppuertoFijo", tDetalle.Rows(0)("puertoFijo").ToString)
      reporte.SetParameterValue("ppuertoVariable", tDetalle.Rows(0)("puertoVariable").ToString)
      reporte.SetParameterValue("pcuotaDiaria", tDetalle.Rows(0)("cuotaDiaria").ToString)
      reporte.SetParameterValue("patraqNoEsp", tDetalle.Rows(0)("atraqNoEsp").ToString)
      reporte.SetParameterValue("patraqEsp", tDetalle.Rows(0)("atraqEsp").ToString)
      reporte.SetParameterValue("pmuellaje", tDetalle.Rows(0)("muellaje").ToString)
      reporte.SetParameterValue("pembarque", tDetalle.Rows(0)("embarque").ToString)
      reporte.SetParameterValue("pmoneda", tDetalle.Rows(0)("moneda").ToString)
      reporte.SetParameterValue("plegales", tDetalle.Rows(0)("legales").ToString)
      reporte.SetParameterValue("pnidEmpresa", tDetalle.Rows(0)("nidEmpresa").ToString)
      
      

      'Datos Anexos
      Dim anexos As String = ""
      Dim tipos As String = ""
      For i As Integer = 0 To tAnexos.Rows.Count - 1
        anexos += tAnexos.Rows(i)("NOMBRE") + Chr(13)
        tipos += tAnexos.Rows(i)("TIPO") + Chr(13)
      Next
      reporte.SetParameterValue("pAnexos", anexos)
      reporte.SetParameterValue("pAnexoTipo", tipos)

      'Datos Incidencias
      Dim fecha As String = ""
      Dim descripcion As String = ""
      Dim emisor As String = ""
      For i As Integer = 0 To tIncidencias.Rows.Count - 1
        fecha += CDate(tIncidencias.Rows(0)("FECHAEMISION")).ToString("dd/MM/yyyy hh:mm:ss") + Chr(13)
        descripcion += tIncidencias.Rows(i)("DESCRIPCION") + Chr(13)
        emisor += tIncidencias.Rows(i)("NOMBRE") + Chr(13)
      Next
      reporte.SetParameterValue("pFechaIncidencia", fecha)
      reporte.SetParameterValue("pDescripcionIncidencia", descripcion)
      reporte.SetParameterValue("pEmisorIncidencia", emisor)


      'Cargar informacion de firma electronica
      Dim consultaFirmas As New DataAccesControlCasetasGranel()
      Dim firmas As New DataTable("CasetaFirmas")
      firmas = consultaFirmas.casetaGranelConsultaFirmas(CInt(Request.QueryString("nidDocumento")))
      Dim cadenaFirmas As String = String.Empty
      For Each datoFirma In firmas.Rows
        cadenaFirmas = cadenaFirmas & datoFirma("Firma").ToString() & " "
      Next
      reporte.SetParameterValue("pFirma", cadenaFirmas)

      'crvSol_InfraEstructura.ParameterFieldInfo.Clear()
      Me.crvSol_InfraEstructura.HasExportButton = False
      Me.crvSol_InfraEstructura.HasToggleGroupTreeButton = False
      Me.crvSol_InfraEstructura.EnableParameterPrompt = False
      'Me.crvSol_InfraEstructura.ParameterFieldInfo = False
      Me.crvSol_InfraEstructura.ReportSource = reporte

    Catch ex As Exception
      lblMensaje.Text = "Error al Cargar reporte: " + ex.Message
    End Try
  End Sub

End Class
